/**
 * Classe que manipula lista de Usuarios
 * 
 * @author Grupo5L - turma 1 (Adriana, Diego e Fabiano)
 */
package Classes;

import java.util.ArrayList;
import java.util.List;

public class ManipulaUsuario {
	private  static List<Usuario> listaUsuario = new ArrayList<Usuario>();	
	// metodos
	
	/**
	 * Adiciona usuario na lista
	 * 
	 * @param perfil
	 * 		  Usuario
	 */

	public void adicionaUsuario(Usuario perfil){
		listaUsuario.add(perfil);
	}

	/**
	 * Recupera lista de usuarios
	 * @return lista com os usuarios cadastrados
	 */
	public static List<Usuario> getListaUsuario(){
		return listaUsuario;
	}

	/**
	 * Recupera a quantidade de usuarios na lista
	 * 
	 * @return Quatidade de usuarios na lista
	 */
	public int getQuantidade(){
		return listaUsuario.size();
	}
	/**
	 * Imprime notas de um usuario
	 * 
	 */
	public void imprimeOpinioes(){
		for(Usuario elemento : getListaUsuario()){
			System.out.println(elemento.getNome()+"\n" + elemento.imprimeNotas());
		}
	}
	
	/**
	 * Recupera os nomes dos usuarios
	 * @return Nomes dos usuarios
	 */
	public static String[] getNomes(){
		String[] nomes;
		String str = "";
		for(Usuario user : getListaUsuario()){
			str = str+user.getNome()+",";			
		}
		nomes = str.substring(0, str.length() - 1).split(",");
		return nomes;
	}
	
	/**
	 * Recupera um determinado usuario da lista
	 * @param Nome do usuario
	 * @return O nome do usuario pesquisado
	 */
	public static Usuario getUsuarioNome(String nome) {
		for (int i = 0; i < listaUsuario.size(); i++) {
			if (listaUsuario.get(i).getNome().equals(nome)) {
				return listaUsuario.get(i);
			}
		}
		return null;
	}
	
	/**
	 * Monta tabela relacionando usuario e notas a paritir de uma posicao
	 * @param posicao
	 *        Posicao desejada da nota
	 * @return Talela com usuario relacionado com a nota
	 */
	public static String[][] relaciona(int posicao){
		String[][] tabela = new String[listaUsuario.size()][2];
		List<Usuario> listaUsuarioCopia = new ArrayList<Usuario>();
		listaUsuarioCopia.addAll(listaUsuario);
		listaUsuarioCopia.remove(0);
		for( int i = 0 ;i < listaUsuarioCopia.size();i++ ){
			int cont = 0;
			tabela[i][cont] = listaUsuarioCopia.get(i).getNome();
			cont++;
			tabela[i][cont] = listaUsuarioCopia.get(i).getNotas(posicao);
		}
		return tabela;
	}
}
	
	
	
	
	